package model

// Order 订单表结构体
type Order struct {
	ID            int64  `gorm:"column:id;primaryKey" json:"id"`
	Typ           uint8  `gorm:"column:typ" json:"typ"`                      // 产品类型 1 金币订单
	OrderNo       string `gorm:"column:order_no" json:"order_no"`            // 订单编码
	UID           uint32 `gorm:"column:uid" json:"uid"`                      // 用户ID
	PayerUID      uint32 `gorm:"column:payer_uid" json:"payer_uid"`          // 付款人uid
	Price         uint32 `gorm:"column:price" json:"price"`                  // 支付金额，单位美分
	Gold          uint32 `gorm:"column:gold" json:"gold"`                    // 购买金币数量
	Platform      uint8  `gorm:"column:platform" json:"platform"`            // 充值平台
	Sandbox       uint8  `gorm:"column:sandbox" json:"sandbox"`              // 是否沙盒环境1是0否
	Sku           string `gorm:"column:sku" json:"sku"`                      // 产品sku
	Mac           string `gorm:"column:mac" json:"mac"`                      // 下单设备号
	TransactionID string `gorm:"column:transactionid" json:"transaction_id"` // 第三方订单号
	Receipt       string `gorm:"column:receipt" json:"receipt"`              // 支付成功后，客户端提交的票据，要校验
	NotifyTime    int64  `gorm:"column:notify_time" json:"notify_time"`      // 回调时间
	NotifyBody    string `gorm:"column:notify_body" json:"notify_body"`      // 回调数据
	RefundTime    int64  `gorm:"column:refund_time" json:"refund_time"`      // 退款时间
	Status        uint8  `gorm:"column:status" json:"status"`                // 状态 1 待支付 2 已支付 3 已退款 4 已取消
	Remark        string `gorm:"column:remark" json:"remark"`                // 管理员备注
	Region        uint8  `gorm:"column:region" json:"region"`                // 分区
	Channel       int8   `gorm:"column:channel" json:"channel"`              // 支付渠道
	UpdateBy      int    `gorm:"column:update_by" json:"update_by"`          // 操作管理员
	CreatedAt     int64  `gorm:"column:created_at" json:"created_at"`        // 创建时间
	UpdatedAt     int64  `gorm:"column:updated_at" json:"updated_at"`        // 最后更新时间
}

// TableName 指定表名
func (Order) TableName() string {
	return "order"
}
